package ExpediaTest;

import java.util.ArrayList;
import java.util.List;

/**
 * This is Sachin Learning more stuff.
 * @author sachintakkar
 *
 */
public class BigInt {

	List<Integer> data = new ArrayList<Integer>();

	/**
	 * returns a BigInt that represent addition of two inputs a & b.
	 * @param a
	 * @param b
	 * @return
	 */
	public static BigInt add(BigInt a, BigInt b) {
		int carry = 0, i = 0, add = 0;
		BigInt result = new BigInt();
		while (i < a.data.size() && i < b.data.size()) {
			add = a.data.get(i) + b.data.get(i) + carry;
			carry = add / 10;
			result.data.add(add % 10);
			i++;
		}
		while (i < a.data.size()) {
			add = a.data.get(i) + carry;
			carry = add / 10;
			result.data.add(add % 10);
			i++;
		}
		while (i < b.data.size()) {
			add = a.data.get(i) + carry;
			carry = add / 10;
			result.data.add(add % 10);
		}
		if (carry > 0) {
			result.data.add(carry);
		}
		return result;
	}

	public void print(List<Integer> data) {
		System.out.println("");
		for (int i = 0; i < data.size(); i++) {
			System.out.print(data.get(i));
		}
	}

	public static void main(String args[]) {
		BigInt a = new BigInt();
		a.data.add(9);
		a.data.add(8);
		a.data.add(6);
		a.data.add(9);

		BigInt b = new BigInt();
		b.data.add(1);
		b.data.add(3);
		b.data.add(3);

		BigInt c = add(a, b);
		c.print(c.data);

	}
}